package com.sasu.university_data.service;

import com.sasu.university_data.dto.Pwd;
import com.sasu.university_data.dto.UpdateUserDto;
import com.sasu.university_data.entity.User;

import java.util.List;

public interface UserService {

    /**
     * 注册
     *
     * @param user 使用者
     * @return {@link Integer }
     * @author qionglan
     * @date 2024/06/13 09:14:13
     **/

    Integer addUser(User user);

    /**
     * 登录
     *
     * @param user 使用者
     * @return {@link Integer }
     * @author qionglan
     * @date 2024/06/13 14:33:13
     **/

    Integer login(User user);

    /**
     * 修改密码
     *
     * @param username 用户名
     * @param pwd      pwd
     * @return {@link Integer }
     * @author qionglan
     * @date 2024/06/13 17:45:13
     **/

    Integer changePwd( String username, Pwd pwd);

    /**
     * 上传头像
     *
     * @param username 用户名
     * @param avatar   阿凡达
     * @return {@link Integer }
     * @author qionglan
     * @date 2024/06/14 15:08:14
     **/

    Integer changeAvatar(String username,String avatar);

    /**
     * 按用户名查找头像
     *
     * @param username 用户名
     * @return {@link String }
     * @author qionglan
     * @date 2024/06/14 16:26:14
     **/

    String findAvatarByUsername(String username);

    boolean updateUserByUsername( UpdateUserDto userDto );

    User selectByUsername( String username);

    /**
     * 统计总行数
     *
     * @return 总行数
     */
    long count(String username);

    /***
     * 分页查询/根据用户名模糊查询再分页
     * @param page
     * @param pageSize
     * @return
     */
    List<User> selectByPage( String username, Integer page, Integer pageSize);

    boolean updateUser(User user);

    boolean insertUser(User user);

    boolean deleteById(Integer uid);
}
